<HTML><HEAD><TITLE>The MIPS Instruction Set</TITLE></HEAD>
<BODY>
<font face="arial" size=+2>
<b>The MIPS Instruction Set</b>
</font>
<font face="arial">
<P>Written by Walter Chang </P>
</font>
<font face="arial" size=-1>Used by permission of the author.  Copyright notice below.
<P><i>Correct pronunciation is critical to get the cadence and beat to line 
up; see the Pronunciation 
Guide at the end of this document for how you should pronounce the various 
assembler instructions.</i> </P>

<P>To the tune of: <i>The Major-General's Song</i>, from 
<b>Pirates of Penzance</b><BR>Inspired by Tom Lehrer's <i>The Elements</i> </P>
</font>
<br>
<font face="Arial">
<P>There's div and nor and mult and or and sllv sra<BR>
There's xor and swl and beq and sll and bgezal jumps today<BR>
And multu, srav, and j combined with lhu and lui<BR>
And also slt and bne and instruction mthi<BR>
There's sh and sb and lbu and blez and jal and then sltu<BR>
And of course there's and and add and srl and sub and things to do<BR>
With the MIPS instructions I am very nimble on my feet<BR>
And though I sing assembler but I am really not a geek<BR>
<BR>
There's addu, ori, slti, swr, and bgez and jalr too<BR>
And loads of other fun instructions that were put in just for you<BR>
The MIPS instruction set is very simple to be memorized<BR>
Which will come in handy when you have your code to optimize! </P>

<P>There's addi, divu, lh, rfe, and syscall, jr, mfcz<BR>
And mfc1, nop, and break, and bltzal with bczt<BR>
And srlv, xori, bltz, and lb, lwl, and addiu<BR>
andi, subu, lwr, and lwcz, mtcz, sltiu<BR>
There's bczf, bgtz to branch if it's greater than<BR>
And mflo and sw, these instructions are not any also-rans<BR>
There's mtlo and swcz too, although I don't know what they're for<BR>
And lw - that's obviously load word from mem bytes there are four<BR>
<BR>
And now my song is through and I know all of my words by the heart<BR>
Which will come in handy when we have our projects multi-part<BR>
I live and breathe the MIPS instruction set on every night and day<BR>
Because the MIPS assembler will always try and work my way! </P>
</font>
<br><br>
<font face="arial" size=+1>
<b>Pronunciation Guide</b>
</font>
<font face="arial">

<P>note: assembler is 4 syllables: ass-em-bell-er </P>
<P>The pronunciations suitable for this song are as follows: </P>
<UL>
  <LI>div: div 
  <LI>nor: nor 
  <LI>mult: mult 
  <LI>or: or 
  <LI>sllv: s-l-l-v 
  <LI>sra: s-r-a 
  <LI>xor: zor 
  <LI>swl: swill 
  <LI>beq: beck 
  <LI>sll: sill 
  <LI>bgezal: beh-geezal 
  <LI>multu: mult-you 
  <LI>srav: srav (one syllable) 
  <LI>j: jay 
  <LI>lhu: l-h-u 
  <LI>lui: l-u-i 
  <LI>slt: slit 
  <LI>bne: b-n-e 
  <LI>mthi: m-t-high 
  <LI>sh: shih 
  <LI>sb: sib 
  <LI>lbu: l-b-u 
  <LI>blez: blez 
  <LI>jal: jal 
  <LI>sltu: slit-u 
  <LI>and: and 
  <LI>add: add 
  <LI>srl: srill 
  <LI>sub: sub 
  <LI>addu: add-u 
  <LI>ori: or-i 
  <LI>slti: slitty 
  <LI>swr: swir 
  <LI>bgez: beh-gez 
  <LI>jalr: jal-er 
  <LI>addi: addy 
  <LI>divu: div-u 
  <LI>lh: l-h 
  <LI>rfe: reef 
  <LI>syscall: sis-call 
  <LI>jr: junior 
  <LI>mfcz: miff-c-z 
  <LI>mfc1: m-f-c-one 
  <LI>nop: nopp 
  <LI>break: break 
  <LI>bltzal: blitz-al 
  <LI>bczt: b-c-z-t 
  <LI>srlv: s-r-l-v 
  <LI>xori: zorri 
  <LI>bltz: blitz 
  <LI>lb: l-b 
  <LI>lwl: lwill 
  <LI>addiu: addy-you 
  <LI>andi: andy 
  <LI>subu: sub-u 
  <LI>lwr: lwer 
  <LI>lwcz: lwiscz 
  <LI>mtcz: m-t-c-z 
  <LI>sltiu: slitty-u 
  <LI>bzcf: b-z-c-f 
  <LI>bgtz: b-g-t-z 
  <LI>mflo: em-flow 
  <LI>sw: swee 
  <LI>mtlo: m-t-low 
  <LI>swcz: swizzy 
  <LI>lw: lwee </LI></UL>
<P>
<a href="http://www.cs.utexas.edu/users/walter/cs-songbook/instruction_set.html">
http://www.cs.utexas.edu/users/walter/cs-songbook/instruction_set.html</a>

</P>
Copyright Walter Chang.  Permission granted for noncommercial use
as long as attribution is maintained.  walter@cs.utexas.edu
</font>
</BODY>
</HTML>
